package version1;

import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

/**
 * Mysql封装工具类：链接对应数据库
 * 1.Mysql与Oracle具备:url、Username,password
 * 所有数据库公用的定义为属性
 * 2.getParam(String路径)获取参数方法：链接成功数据库操作
 *
 * 2.1外置文件【url、账号、密码】统一配置文件中【形式：键值对】
 * db_mysql.properties 对应JavaProperties类读取文件键值对
 */
public class mysql {
    //定义数据库基本属性：私有化静态属性 类直接调取属性
    private static String url;
    private static String username;
    private static String password;
    //2.定义方法:链接成功数据库 文件路径传入
    public static void getParam(String fileName) throws IOException {
    //2.1读取db_mysql.properties文件 -- Properties类读取文件键和值
    Properties p=new Properties();
    //2.1[补充2]低级流 -- 搬运数据 -- 传入fileName
    //Mysql.class 表示当前Mysql类的CLass对象
    //

    //getClassLoader()获取当前类的加载器【加载器:根据路径执行配置文件】
    InputStream fis=
                mysql.class.getClassLoader().getResourceAsStream(fileName);
    //2.1[补充1]Properties类提供Load()方法:必须传入流 -- 低级流 -- 搬运数据
        p.load(fis);
    //2.2从db_mysql.properties读取的键值对信息,
    //Properties类提供方法getProperty("键”)通过键找值
    // 赋值给当前Mysql的数据库基本信息【url、用户、密码】
    url=p.getProperty("url");
    username=p.getProperty("username");
    password=p.getProperty("password");
    //2.3打桩:
        System.out.println("数据库基本信息:"+url+username+password);

    }
    //3.测试工具类 -- 链接成功数据库【外置文件 -- 配置Mysql基本信息】
    public static void main(String[] args) throws IOException, SQLException {
    mysql.getParam("db_mysql.properties");
    //作业2:参考Mysql工具类 -- 编写Oracle工具类 10分钟
    // 目的:工具类 -- 链接成功不同的数据库【外置文件基本信息配置不同】
    //作业3:【增加一条操作 --- mi库 -- book】 查询
    //JDBC: Connection, Statement|  ResultSet
    //1.创建数据库链接操作
    Connection con =
                DriverManager.getConnection(url, username, password);
        //2.执行sql -- 创建成功数据库
        String sql=
"insert into book values(6,'余华','活着',35,'2023',90,'否')";
        Statement st =con.createStatement();
//增删改 executeUpdate()返回成功几条记录
        int rows=st.executeUpdate(sql);
        System.out.println("book表添加了"+rows+"条记录");



        String sql2="select * from book";//查询

        ResultSet rs=st.executeQuery(sql2);
        while(rs.next()){
            int id=rs.getInt("id");
            String author=rs.getString("author");
            String name=rs.getString("name");
            int price=rs.getInt("price");
            String date=rs.getString("date");
            int number=rs.getInt("number");
            String discount=rs.getString("discount");
            System.out.println("查询book表中数据");
        }
        //关闭资源
        rs.close();
        st.close();
        con.close();











    }


}
